#!/bin/bash
set -euo pipefail
BaseDir=$(cd "$(dirname "$0")"; pwd)
cd ${BaseDir}

# PEP 8 – Style Guide for Python Code
#   https://peps.python.org/pep-0008/

# wemake-python-styleguide，就是完全基于 fake8 的插件机制开发的。
# 扫描结果示例:wemake-python-styleguide 对代码的要求极为严格。安装它以后，如果再用fake8 扫描会找到更多的建议
pip3 install flake8
flake8 --version

#为了解决这个问题，PEP8规范提出了一些建议。PEP8认为，一个源码文件内的所有 import 语句，都应该依照以下规则分为三组
# (1)导入 Python 标准库包的 import 语句;
# (2)导入相关联的第三方包的 import 语句;
# (3)与当前应用(或当前库)相关的 import 语句。
# 不同的 import 语句组之间应该用空格分开。
pip3 install isort
isort --version

# black 是一个“毫不妥协的代码格式化工具”（The Uncompromising Code Formatter）。和许多其他格式化工具相比，black 的配置项可以用“贫瘠”两个字来形容。除了单行长度以外，你基本无法对 black 的行为做任何调整。
pip3 install black
black --version
black --check .

# .pre-commit-config.yaml 文件是 pre-commit 工具的核心配置文件，用于定义一组在开发者提交代码到 Git 仓库之前自动执行的钩子（hooks）。这些钩子通常是各种代码质量检查工具或格式化器，帮助确保代码遵循特定的编码规范、进行安全性检查、自动化格式化等。这样可以在代码进入版本控制系统之前捕获并修正潜在的问题，提高代码质量和团队协作效率。
pip3 install pre-commit
pre-commit --version

